ডেটা সিডিং (Seeding Data)

Microsoft Technologies - এএসপি ডট নেট কোর (ASP.Net Core) ডেটাবেস মাইগ্রেশন (Database Migrations) |
187
187

ডেটা সিডিং হলো একটি প্রক্রিয়া যেখানে প্রাথমিক ডেটা ডেটাবেসে স্বয়ংক্রিয়ভাবে ইনসার্ট করা হয়। সাধারণত এটি ডেভেলপমেন্ট বা টেস্টিং পরিবেশে ব্যবহৃত হয়, যেখানে ডেটাবেসে কিছু প্রাথমিক বা নমুনা (sample) ডেটা থাকতে হয়। ASP.NET Core-এ Entity Framework Core ব্যবহার করে ডেটা সিডিং খুবই সহজ। ডেটা সিডিংয়ের মাধ্যমে আপনি ডেটাবেসের টেবিলগুলোতে প্রাথমিক ডেটা প্রদান করতে পারেন।


ডেটা সিডিংয়ের প্রয়োজনীয়তা

  • ডেভেলপমেন্ট এবং টেস্টিং: ডেভেলপারদের জন্য ডেটাবেসে প্রাথমিক বা নমুনা ডেটা থাকতে পারে, যা কোড ডেভেলপমেন্ট বা টেস্টিংয়ের জন্য সহায়ক।
  • ইনিসিয়াল ডেটা ইনসার্ট করা: অ্যাপ্লিকেশন চলতে শুরু করার সময় কিছু প্রাথমিক ডেটা ডেটাবেসে যোগ করা।
  • ডেটাবেস মাইগ্রেশন: যখন আপনি ডেটাবেস মাইগ্রেশন চালান, তখন প্রাথমিক ডেটা সিডিং ব্যবহার করে ডেটাবেসে প্রয়োজনীয় ডেটা ইনসার্ট করা হয়।

Entity Framework Core-এ ডেটা সিডিং

ASP.NET Core-এ ডেটা সিডিং করার জন্য DbContext ক্লাসের মাধ্যমে ডেটাবেসে ডেটা ইনসার্ট করা হয়। সাধারণত, ডেটা সিডিং Seed পদ্ধতি দিয়ে করা হয়, যা ডেটাবেস মাইগ্রেশন চলাকালীন বা অ্যাপ্লিকেশন চালু হলে কল করা হয়।

1. DbContext-এ Seed Method তৈরি করা

প্রথমে, DbContext ক্লাসে OnModelCreating মেথডে প্রাথমিক ডেটা সিড করা হয়। এক্ষেত্রে আপনি HasData মেথড ব্যবহার করতে পারেন।

public class ApplicationDbContext : DbContext
{
    public DbSet<Product> Products { get; set; }

    public ApplicationDbContext(DbContextOptions<ApplicationDbContext> options)
        : base(options)
    { }

    protected override void OnModelCreating(ModelBuilder modelBuilder)
    {
        // Product টেবিলের জন্য প্রাথমিক ডেটা সিড করা
        modelBuilder.Entity<Product>().HasData(
            new Product { Id = 1, Name = "Laptop", Price = 1000 },
            new Product { Id = 2, Name = "Phone", Price = 500 }
        );
    }
}

এখানে, Products টেবিলের জন্য দুটি প্রাথমিক ডেটা সিড করা হয়েছে, যা ডেটাবেসে Product ক্লাসের ইনস্ট্যান্স হিসেবে ইনসার্ট হবে।

2. Migrations এবং Update Database

একবার ডেটা সিডিং প্রস্তুত হয়ে গেলে, আপনাকে মাইগ্রেশন তৈরি করতে হবে এবং ডেটাবেস আপডেট করতে হবে:

dotnet ef migrations add SeedDataMigration
dotnet ef database update

এখানে, SeedDataMigration হলো মাইগ্রেশনের নাম, যা নতুন ডেটাবেস স্কিমা এবং প্রাথমিক ডেটা ইনসার্ট করবে।

3. Manual Seed Method (অথবা Custom Seed Logic)

আপনি যদি আরও কাস্টম লজিক ব্যবহার করতে চান, যেমন শুধুমাত্র যখন ডেটাবেস খালি থাকে তখনই ডেটা সিড করা, তবে আপনি একটি Seed মেথড তৈরি করতে পারেন এবং এটি Startup.cs-এ কল করতে পারেন।

public static class SeedData
{
    public static void Initialize(IServiceProvider serviceProvider, ApplicationDbContext context)
    {
        // ডেটাবেস যদি খালি থাকে তবে সিড ডেটা যোগ করা
        if (!context.Products.Any())
        {
            context.Products.AddRange(
                new Product { Name = "Tablet", Price = 300 },
                new Product { Name = "Smartwatch", Price = 150 }
            );
            context.SaveChanges();
        }
    }
}

এখানে, যদি Products টেবিলটি খালি থাকে, তবে নতুন প্রোডাক্ট ডেটা ইনসার্ট করা হবে। এই Initialize মেথডটি Configure মেথডে কল করতে হবে।

4. Seed Method কে Configure তে কল করা

Startup.cs-এ Configure মেথডে এই SeedData.Initialize মেথডটি কল করতে হবে।

public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
    // ডেটা সিডিং করার জন্য
    SeedData.Initialize(app.ApplicationServices, new ApplicationDbContext());

    // অন্যান্য কনফিগারেশন
}

এটি নিশ্চিত করে যে, অ্যাপ্লিকেশন শুরু হওয়ার সময় ডেটাবেসে প্রাথমিক ডেটা সিড করা হবে।


ডেটা সিডিংয়ের বিকল্প

  1. User Secrets: ডেভেলপমেন্ট পরিবেশে প্রাথমিক ডেটা সিডিং করার সময় আপনি User Secrets ব্যবহার করতে পারেন যাতে আপনার সংবেদনশীল তথ্য সুরক্ষিত থাকে।
  2. SQL Scripts: কখনও কখনও আপনি SQL স্ক্রিপ্ট ব্যবহার করতে পারেন ডেটাবেসের জন্য প্রাথমিক ডেটা সিড করার জন্য, বিশেষত যদি আপনার অ্যাপ্লিকেশনটি বড় বা আরও কাস্টমাইজড ডেটাবেস কাঠামো ব্যবহার করে থাকে।

সারাংশ

ডেটা সিডিং হচ্ছে ডেটাবেসে প্রাথমিক বা নমুনা ডেটা ইনসার্ট করার একটি প্রক্রিয়া যা ডেভেলপমেন্ট বা টেস্টিং পরিবেশে অত্যন্ত গুরুত্বপূর্ণ। Entity Framework Core এর মাধ্যমে সহজেই OnModelCreating অথবা কাস্টম সিড মেথড ব্যবহার করে ডেটা সিড করা যায়। এই প্রক্রিয়া ডেটাবেস মাইগ্রেশন এবং আপডেটের সাথে সম্পর্কিত, এবং এটি অ্যাপ্লিকেশনের প্রথমবার চালু হওয়ার সময় প্রাথমিক ডেটা ইনসার্ট করতে সহায়তা করে।

common.content_added_by
টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion